package com.thinkverse.user.util;

import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class EmailService {

    private final JavaMailSender mailSender;

    // 配置文件中设置的发送者邮箱
    @Value("${spring.mail.username}")
    private String fromEmail;

    /**
     * 发送HTML格式的邮件
     * @param to 收件人邮箱
     * @param subject 邮件主题
     * @param content 邮件内容（支持HTML）
     */
    public void sendHtmlEmail(String to, String subject, String content) {
        try {
            // 创建邮件消息对象
            MimeMessage message = mailSender.createMimeMessage();
            // 使用MimeMessageHelper简化邮件配置（支持HTML）
            MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");

            helper.setFrom(fromEmail); // 发件人
            helper.setTo(to);         // 收件人
            helper.setSubject(subject); // 主题
            helper.setText(content, true); // 内容（第二个参数true表示支持HTML）

            // 发送邮件
            mailSender.send(message);
        } catch (MessagingException e) {
            // 邮件发送失败时抛出业务异常（可根据实际需求自定义异常）
            throw new RuntimeException("邮件发送失败：" + e.getMessage(), e);
        }
    }
}